# ===============================while循环================================
"""
while循环，一般语法格式:
while 判断条件：
    语句

如果"判断条件"为True，则执行"语句"，否则跳出循环;
如果"判断条件"永远为True，没有为False的情况，称为"无限循环"或"死循环";
同样需要注意冒号和缩进，同时需要注意的是，没有别人家的do-while循环;
"""
# eg1（1到100的和）
n = 100
sum = 0
counter = 1
while counter <= n:
    sum += counter
    counter += 1
print("1 到 %d 之和为: %d" % (n, sum))

# eg2(while循环使用else语句)
inc = 0
while inc <= 3:
    print(inc, "小于或等于3")
    # 每次加1(Python中没有所谓java中的自增（++）或自减(--)运算符)
    inc += 1
else:
    print(inc, "大于3")

# ===============================for循环================================
"""
Python for循环可以遍历任何序列的项目，如一个列表或者一个字符串。
for语句，一般语法格式:
for v in s:
    语句
else:
    语句
    
v是变量，s是一个序列，比如一个列表或字符串，每次循环从列表一个一个取出的值都放在变量v中，可以直接使用赋值后的变量v。
"""
# eg1
languages = ["汇编", "C", "C++", "Java", "Python"]
for language in languages:
    if language == "Java":
        print("咖啡宝贝")
        # 使用break退出循环
        break
    print("循环数据 " + language)
else:
    print("没有循环数据!")
print("曾经沧海难为水，除却巫山不是云。取次花丛懒回顾，半缘修道半缘君。")

# ===============================pass语句================================
"""
pass 语句:
Python pass是空语句，是为了保持程序结构的完整性。pass 不做任何事情，一般用做占位语句。
"""
# eg1(通过range生成2-9的数组)
nums = range(2, 9)
for num in nums:
    if num == 6:
        pass
        print("执行当前pass模块")
    print("当前数字:", num)

# eg2，简单实用pass，有时候我们定义一个函数,还没想好实现，可以先用一个pass作为函数体，免得报错，以后再写实现
def thisMyFunction():
    # 不写函数体，会报错，这里用pass，表示什么都不做
    pass
# ===============================break、continue语句================================
"""
高级语言中，有循环的地方，几乎都有break,continue支持循环，
break用于终止当前循环，在上面for循环中有使用，表示循环到此结束;
continue用于跳过当前循环，continue后续的语句不执行，直接跳回循环条件判断表达式;
"""
# eg1(对于大于或等于30岁的，不打印年龄)
ages = [18, 20, 27, 30, 40, 60, 19, 23]
for age in  ages:
    if age >= 40:
        print("这是个秘密")
        continue
    print("年龄:", age)
'''
程序运行结果:
年龄: 18
年龄: 20
年龄: 27
年龄: 30
这是个秘密
这是个秘密
年龄: 19
年龄: 23

从运行结果可以看出，对于30,40,60并未打印年龄，而是跳回循环处，处理下一个元素，类推处理。
'''